home *** CD-ROM | disk | FTP | other *** search
/ Die Speccy' 97 / Die Speccy' 97.iso / amiga_system / the_aminet / comm / bbs / wwbbs31_source.lha / WWBBS / WWBBSSrc / node_lib.c < prev    next >
C/C++ Source or Header  |  1995-06-25  |  5KB  |  143 lines

  1. #include <exec/types.h>
  2. #include <exec/exec.h>
  3. #include <dos/dostags.h>
  4. #include <libraries/wwbbs.h>
  5. #include <ctype.h>
  6. #include <stdio.h>
  7. #include <stdlib.h>
  8. #include <string.h>
  9.  
  10. #include "wwbbs.h"
  11.  
  12. #include "wwbbs_settings.h"
  13.  
  14. #include "wwbbs_lib.h"
  15.  
  16. #include "node_lib.h"
  17.  
  18. #include "libs.h"
  19.  
  20. #include "Data:Programs/Include/wwbbs_commands.h"
  21.  
  22. void __saveds SetDoorVariables(struct Libraries *,BYTE *,ULONG);
  23. void __saveds DeleteDoorVariables(struct Libraries *);
  24.  
  25. void __saveds Session(struct Libraries *libs,BYTE *id,BOOL local,ULONG baud)
  26.     {
  27.         if(StartProcess("WWBBS Console",ConsoleProc,20000,id))
  28.             {
  29.                 if(StartProcess("WWBBS Timer",TimerProc,20000,id))
  30.                     {
  31.                         if(AddStatusTags(STTAG_Name,id,TAG_END))
  32.                             {
  33.                                 SetStatusTags(STTAG_Name,id,
  34.                                     STTAG_InactivityTimeLimit,3,
  35.                                     STTAG_Local,local,
  36.                                     TAG_END);
  37.                                 if(local)
  38.                                     ConsoleCommandTags(id,CONCMD_Open,TAG_END);
  39.                                 SetDoorVariables(libs,id,baud);
  40.                                 TimerCommandTags(id,TMRCMD_Start,TMRSTARTTAG_TimeRemaining,15,TMRSTARTTAG_TimeUsed,0,TAG_END);
  41.                                 {
  42.                                     BPTR fh;
  43.                                     BYTE consolename[64];
  44.                                     sprintf(consolename,"WWBBSAUX:%s",id);
  45.                                     if(fh=Open(consolename,MODE_NEWFILE))
  46.                                         {
  47.                                             BYTE command[256];
  48.                                             strcpy(command,"");
  49.                                             GetConfigTags(CFGTAG_Path,"Nodes",CFGTAG_Name,id,NDTAG_Command,command,TAG_END);
  50.                                             SystemTags(command,SYS_Input,fh,SYS_Output,NULL,TAG_END);
  51.                                             Close(fh);
  52.                                         }
  53.                                 }
  54.                                 TimerCommandTags(id,TMRCMD_Stop,TAG_END);
  55.                                 DeleteDoorVariables(libs);
  56.                                 RemStatusTags(STTAG_Name,id,TAG_END);
  57.                             }
  58.                         KillProcess("WWBBS Timer",id);
  59.                     }
  60.                 KillProcess("WWBBS Console",id);
  61.             }
  62.     }
  63.  
  64. void __saveds SetDoorVariables(struct Libraries *libs,BYTE *id,ULONG baud)
  65.     {
  66.         char buff[256];
  67.         sprintf(buff,"%ld",baud);
  68.         SetVar("BAUD",buff,-1,GVF_LOCAL_ONLY);
  69.         SetVar("NODE",(id) ? id : "",-1,GVF_LOCAL_ONLY);
  70.         SetVar("USERNAME","",-1,GVF_LOCAL_ONLY);
  71.         SetVar("REALNAME","",-1,GVF_LOCAL_ONLY);
  72.         SetVar("UUCPNAME","",-1,GVF_LOCAL_ONLY);
  73.         SetVar("HOME","",-1,GVF_LOCAL_ONLY);
  74.         SetVar("ACCESSLEVEL","",-1,GVF_LOCAL_ONLY);
  75.         SetVar("BYTERATIO","",-1,GVF_LOCAL_ONLY);
  76.         SetVar("FILERATIO","",-1,GVF_LOCAL_ONLY);
  77.         SetVar("ROWS","",-1,GVF_LOCAL_ONLY);
  78.         SetVar("COLUMNS","",-1,GVF_LOCAL_ONLY);
  79.         SetVar("EDITOR","",-1,GVF_LOCAL_ONLY);
  80.         SetVar("VISUAL","",-1,GVF_LOCAL_ONLY);
  81.         SetVar("PROTOCOLSEND","",-1,GVF_LOCAL_ONLY);
  82.         SetVar("PROTOCOLRECEIVE","",-1,GVF_LOCAL_ONLY);
  83.         SetVar("ARCHIVERADD","",-1,GVF_LOCAL_ONLY);
  84.         SetVar("ARCHIVEREXTRACT","",-1,GVF_LOCAL_ONLY);
  85.         SetVar("ARCHIVERVIEW","",-1,GVF_LOCAL_ONLY);
  86.         SetVar("MESSAGEBASE_PATH","",-1,GVF_LOCAL_ONLY);
  87.         SetVar("MESSAGEBASE_AREA","",-1,GVF_LOCAL_ONLY);
  88.         SetVar("MESSAGEBASE_ACCESSRANGE","",-1,GVF_LOCAL_ONLY);
  89.         SetVar("MESSAGEBASE_GROUP","",-1,GVF_LOCAL_ONLY);
  90.         SetVar("MESSAGEBASE_QUOTEHEADER","",-1,GVF_LOCAL_ONLY);
  91.         SetVar("MESSAGEBASE_DAYS","",-1,GVF_LOCAL_ONLY);
  92.         SetVar("MESSAGEBASE_READONLY","",-1,GVF_LOCAL_ONLY);
  93.         SetVar("MESSAGEBASE_AUTOJOIN","",-1,GVF_LOCAL_ONLY);
  94.         SetVar("FILEBASE_PATH","",-1,GVF_LOCAL_ONLY);
  95.         SetVar("FILEBASE_AREA","",-1,GVF_LOCAL_ONLY);
  96.         SetVar("FILEBASE_ACCESSRANGE","",-1,GVF_LOCAL_ONLY);
  97.         SetVar("FILEBASE_GROUP","",-1,GVF_LOCAL_ONLY);
  98.         SetVar("FILEBASE_DIRECTORY","",-1,GVF_LOCAL_ONLY);
  99.         SetVar("FILEBASE_DISKSPACEREQUIRED","",-1,GVF_LOCAL_ONLY);
  100.         SetVar("FILEBASE_DAYS","",-1,GVF_LOCAL_ONLY);
  101.         SetVar("FILEBASE_READONLY","",-1,GVF_LOCAL_ONLY);
  102.         SetVar("FILEBASE_AUTOJOIN","",-1,GVF_LOCAL_ONLY);
  103.     }
  104.  
  105. void __saveds DeleteDoorVariables(struct Libraries *libs)
  106.     {
  107.         DeleteVar("BAUD",GVF_LOCAL_ONLY);
  108.         DeleteVar("NODE",GVF_LOCAL_ONLY);
  109.         DeleteVar("USERNAME",GVF_LOCAL_ONLY);
  110.         DeleteVar("REALNAME",GVF_LOCAL_ONLY);
  111.         DeleteVar("UUCPNAME",GVF_LOCAL_ONLY);
  112.         DeleteVar("HOME",GVF_LOCAL_ONLY);
  113.         DeleteVar("ACCESSLEVEL",GVF_LOCAL_ONLY);
  114.         DeleteVar("BYTERATIO",GVF_LOCAL_ONLY);
  115.         DeleteVar("FILERATIO",GVF_LOCAL_ONLY);
  116.         DeleteVar("ROWS",GVF_LOCAL_ONLY);
  117.         DeleteVar("COLUMNS",GVF_LOCAL_ONLY);
  118.         DeleteVar("EDITOR",GVF_LOCAL_ONLY);
  119.         DeleteVar("VISUAL",GVF_LOCAL_ONLY);
  120.         DeleteVar("PROTOCOLSEND",GVF_LOCAL_ONLY);
  121.         DeleteVar("PROTOCOLRECEIVE",GVF_LOCAL_ONLY);
  122.         DeleteVar("ARCHIVERADD",GVF_LOCAL_ONLY);
  123.         DeleteVar("ARCHIVEREXTRACT",GVF_LOCAL_ONLY);
  124.         DeleteVar("ARCHIVERVIEW",GVF_LOCAL_ONLY);
  125.         DeleteVar("MESSAGEBASE_PATH",GVF_LOCAL_ONLY);
  126.         DeleteVar("MESSAGEBASE_AREA",GVF_LOCAL_ONLY);
  127.         DeleteVar("MESSAGEBASE_ACCESSRANGE",GVF_LOCAL_ONLY);
  128.         DeleteVar("MESSAGEBASE_GROUP",GVF_LOCAL_ONLY);
  129.         DeleteVar("MESSAGEBASE_QUOTEHEADER",GVF_LOCAL_ONLY);
  130.         DeleteVar("MESSAGEBASE_DAYS",GVF_LOCAL_ONLY);
  131.         DeleteVar("MESSAGEBASE_READONLY",GVF_LOCAL_ONLY);
  132.         DeleteVar("MESSAGEBASE_AUTOJOIN",GVF_LOCAL_ONLY);
  133.         DeleteVar("FILEBASE_PATH",GVF_LOCAL_ONLY);
  134.         DeleteVar("FILEBASE_AREA",GVF_LOCAL_ONLY);
  135.         DeleteVar("FILEBASE_ACCESSRANGE",GVF_LOCAL_ONLY);
  136.         DeleteVar("FILEBASE_GROUP",GVF_LOCAL_ONLY);
  137.         DeleteVar("FILEBASE_DIRECTORY",GVF_LOCAL_ONLY);
  138.         DeleteVar("FILEBASE_DISKSPACEREQUIRED",GVF_LOCAL_ONLY);
  139.         DeleteVar("FILEBASE_DAYS",GVF_LOCAL_ONLY);
  140.         DeleteVar("FILEBASE_READONLY",GVF_LOCAL_ONLY);
  141.         DeleteVar("FILEBASE_AUTOJOIN",GVF_LOCAL_ONLY);
  142.     }
  143.